package com.yuanfeng.base.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanfeng.base.entity.BaseExpressEntity;
import com.yuanfeng.base.vo.ManageExpressQueryVO;
import com.yuanfeng.commoms.dto.base.BaseExpressDTO;
import com.yuanfeng.commoms.util.ResponseResult;

import java.util.List;
import java.util.Map;

/**
 *
 */
public interface BaseExpressService extends IService<BaseExpressEntity> {

    /**
     * 查询快递公司
     *
     * @return
     */
    ResponseResult queryNoToken();

    /**
     * 查询快递公司列表
     *
     * @param map
     * @return
     */
    ResponseResult queryExpressList(Map<String, Object> map);

    /**
     * 根据id查询快递信息
     *
     * @param expressId
     * @return
     */
    ResponseResult getBaseExpressInfoById(Integer expressId);

    /**
     * 查询快递公司 feign
     *
     * @return
     */
    List<ManageExpressQueryVO> queryNoTokenTwo();

    /**
     * 新增快递公司
     *
     * @param baseExpressReq
     * @return
     */
    ResponseResult addExpress(BaseExpressDTO baseExpressReq);

    /**
     * 修改快递公司
     *
     * @param baseExpressReq
     * @return
     */
    ResponseResult updateExpress(BaseExpressDTO baseExpressReq);

    /**
     * 删除快递公司
     *
     * @param baseExpressReq
     * @return
     */
    ResponseResult deleteExpress(BaseExpressDTO baseExpressReq);

    /**
     * 查询快递设置
     * @param paraMap
     * @return
     */
    ResponseResult queryByShopDpexpress(Map<String, Object> paraMap);

    /**
     * 更新快递设置
     * @param paraMap
     * @return
     */
    ResponseResult updateShopDpexpress(Map<String,Object> paraMap);

    /**
     * 删除快递设置
     * @param paraMap
     * @return
     */
    ResponseResult deleteDpexpressParam(Map<String,Object> paraMap);

    /**
     * 添加网点密钥
     * @param paraMap
     * @return
     */
    ResponseResult insertshopDpexpress(Map<String,Object> paraMap);

    /**
     * 根据选择的快递，动态生成填写信息
     * @param paraMap
     * @return
     */
    ResponseResult queryKdiniaoExperss(Map<String,Object> paraMap);

    /**
     * 根据物流公司Id查找名称
     * @param orderShippingExpressId
     * @return
     */
    String queryBaseExpressById(Integer orderShippingExpressId);
}
